共计 622 个字符,预计需要花费 2 分钟才能阅读完成。
一. 什么是算法
- 算法就是高效解决问题的方法
- 一种算法就是用来解决一种特定问题的
比如从 10000 个从小到大排列且不连续数字里找出 8654
普通方法就是用眼瞅, 从左到右
运气好瞅一次, 运气不好瞅一万次
于是就有了二分法, 取出中间的值
左边的值一定比中间的值小
右边的值一定比中间的值大
于是找到 8654 所用的时间大大缩短
二.hash 哈希算法
可以把把文本内容 / 一串字符计算成一串 hash 值
一串内容 ---->"hash" 算法 ---->"hash" 值
-
md5
-
sha512
- sha256
三.hash 值的三大特点
- 传入的内容一样, 采用的 hash 算法一样, 得到的 hash 值也一定一样
- hash 不可逆推, 不能通过 hash 值反推出明文
- hash 值的长度取决于采用的 hash 算法, 与传入的内容多少无关
四. 哈希的应用
- 结合特点 1 和 2 可以用于加密
- 结合特点 1 和 3 可以用于文件完整性校验
再网页上下载文件进度条 100% 后会卡一小些时间
其实就是在进行 "hash" 的校验
五. 密码加盐
- 客户端向服务端提交密码会在客户端先通过算法加密
- 而服务端存有加密后的密码, 直接比对进行校验
- 但是这还是不够安全的, 高技术的黑客可以拿着密文密码进行撞库或者写客户端直接提交截获到的密文
- 于是就出现了 密码加盐 的概念
⛅密码加盐相当于暗号, 只有设置者知道
⛅示范:
正常密码: 123456
加盐密码: 派大星 123456 海绵宝宝
或者: 章 1 鱼 2 哥 3 蟹 4 老 5 板 6
⛅加盐之后计算出来的 "hash" 是完全不一样的
⛅想要撞库的人就必须要猜到使用的算法和加的盐
正文完